#pragma once

#include <aie_api/aie.hpp>
#include <aie_api/aie_adf.hpp>
#include "definition.hpp"

#define N_SWAP 992
#define lim 3
#define LEN_CL 328
#define N_SWAP_2 240
#define N_SWAP_4 768
#define MAT_OMG_SHIFT 14
#define OMG_SHIFT 14
#define TF_SHIFT 14

using namespace aie;

static int16 swap2[]={2,256,5,640,7,896,8,64,10,320,13,704,15,960,16,32,18,288,21,672,23,928,24,96,26,352,29,736,31,992,34,272,37,656,39,912,40,80,42,336,45,720,47,976,50,304,53,688,55,944,56,112,58,368,61,752,63,1008,66,264,69,648,71,904,74,328,77,712,79,968,82,296,85,680,87,936,88,104,90,360,93,744,95,1000,98,280,101,664,103,920,106,344,109,728,111,984,114,312,117,696,119,952,122,376,125,760,127,1016,261,642,263,898,266,322,269,706,271,962,274,290,277,674,279,930,282,354,285,738,287,994,293,658,295,914,298,338,301,722,303,978,309,690,311,946,314,370,317,754,319,1010,325,650,327,906,333,714,335,970,341,682,343,938,346,362,349,746,351,1002,357,666,359,922,365,730,367,986,373,698,375,954,381,762,383,1018,647,901,653,709,655,965,661,677,663,933,669,741,671,997,679,917,685,725,687,981,695,949,701,757,703,1013,711,909,719,973,727,941,733,749,735,1005,743,925,751,989,759,957,767,1021,911,967,919,935,927,999,943,983,959,1015,991,1007};
static int16 swap4[]={1,128,4,512,3,384,6,768,9,192,12,576,11,448,14,832,17,160,20,544,19,416,22,800,25,224,28,608,27,480,30,864,33,144,36,528,35,400,38,784,41,208,44,592,43,464,46,848,49,176,52,560,51,432,54,816,57,240,60,624,59,496,62,880,65,136,68,520,67,392,70,776,73,200,76,584,75,456,78,840,81,168,84,552,83,424,86,808,89,232,92,616,91,488,94,872,97,152,100,536,99,408,102,792,105,216,108,600,107,472,110,856,113,184,116,568,115,440,118,824,121,248,124,632,123,504,126,888,129,132,516,513,130,260,514,257,131,388,518,769,133,644,517,641,134,772,515,385,135,900,519,897,137,196,524,577,138,324,522,321,139,452,526,833,140,580,521,193,141,708,525,705,142,836,523,449,143,964,527,961,145,164,532,545,146,292,530,289,147,420,534,801,148,548,529,161,149,676,533,673,150,804,531,417,151,932,535,929,153,228,540,609,154,356,538,353,155,484,542,865,156,612,537,225,157,740,541,737,158,868,539,481,159,996,543,993,162,276,546,273,163,404,550,785,165,660,549,657,166,788,547,401,167,916,551,913,169,212,556,593,170,340,554,337,171,468,558,849,172,596,553,209,173,724,557,721,174,852,555,465,175,980,559,977,177,180,564,561,178,308,562,305,179,436,566,817,181,692,565,689,182,820,563,433,183,948,567,945,185,244,572,625,186,372,570,369,187,500,574,881,188,628,569,241,189,756,573,753,190,884,571,497,191,1012,575,1009,194,268,578,265,195,396,582,777,197,652,581,649,198,780,579,393,199,908,583,905,201,204,588,585,202,332,586,329,203,460,590,841,205,716,589,713,206,844,587,457,207,972,591,969,210,300,594,297,211,428,598,809,213,684,597,681,214,812,595,425,215,940,599,937,217,236,604,617,218,364,602,361,219,492,606,873,220,620,601,233,221,748,605,745,222,876,603,489,223,1004,607,1001,226,284,610,281,227,412,614,793,229,668,613,665,230,796,611,409,231,924,615,921,234,348,618,345,235,476,622,857,237,732,621,729,238,860,619,473,239,988,623,985,242,316,626,313,243,444,630,825,245,700,629,697,246,828,627,441,247,956,631,953,249,252,636,633,250,380,634,377,251,508,638,889,253,764,637,761,254,892,635,505,255,1020,639,1017,259,386,262,770,267,450,270,834,275,418,278,802,283,482,286,866,291,402,294,786,299,466,302,850,307,434,310,818,315,498,318,882,323,394,326,778,331,458,334,842,339,426,342,810,347,490,350,874,355,410,358,794,363,474,366,858,371,442,374,826,379,506,382,890,387,390,774,771,389,646,773,643,391,902,775,899,395,454,782,835,397,710,781,707,398,838,779,451,399,966,783,963,403,422,790,803,405,678,789,675,406,806,787,419,407,934,791,931,411,486,798,867,413,742,797,739,414,870,795,483,415,998,799,995,421,662,805,659,423,918,807,915,427,470,814,851,429,726,813,723,430,854,811,467,431,982,815,979,435,438,822,819,437,694,821,691,439,950,823,947,443,502,830,883,445,758,829,755,446,886,827,499,447,1014,831,1011,453,654,837,651,455,910,839,907,459,462,846,843,461,718,845,715,463,974,847,971,469,686,853,683,471,942,855,939,475,494,862,875,477,750,861,747,478,878,859,491,479,1006,863,1003,485,670,869,667,487,926,871,923,493,734,877,731,495,990,879,987,501,702,885,699,503,958,887,955,507,510,894,891,509,766,893,763,511,1022,895,1019};

static cint16 mat_omg_8[64]={{16384,0},{16384,0},{16384,0},{16384,0},{16384,0},{16384,0},{16384,0},{16384,0},{16384,0},{11585,-11585},{0,-16384},{-11585,-11585},{-16384,0},{-11585,11585},{0,16384},{11585,11585},{16384,0},{0,-16384},{-16384,0},{0,16384},{16384,0},{0,-16384},{-16384,0},{0,16384},{16384,0},{-11585,-11585},{0,16384},{11585,-11585},{-16384,0},{11585,11585},{0,-16384},{-11585,11585},{16384,0},{-16384,0},{16384,0},{-16384,0},{16384,0},{-16384,0},{16384,0},{-16384,0},{16384,0},{-11585,11585},{0,-16384},{11585,11585},{-16384,0},{11585,-11585},{0,16384},{-11585,-11585},{16384,0},{0,16384},{-16384,0},{0,-16384},{16384,0},{0,16384},{-16384,0},{0,-16384},{16384,0},{11585,11585},{0,16384},{-11585,11585},{-16384,0},{-11585,-11585},{0,-16384},{11585,-11585},};

static cint16 omg_16[]={{16384,0},{15136,-6269},{11585,-11585},{6269,-15136},{0,-16384},{-6269,-15136},{-11585,-11585},{-15136,-6269},};

static cint16 omg_32[]={{16384,0},{16069,-3196},{15136,-6269},{13622,-9102},{11585,-11585},{9102,-13622},{6269,-15136},{3196,-16069},{0,-16384},{-3196,-16069},{-6269,-15136},{-9102,-13622},{-11585,-11585},{-13622,-9102},{-15136,-6269},{-16069,-3196},};

static cint16 omg_64[]={{16384,0},{16305,-1605},{16069,-3196},{15678,-4756},{15136,-6269},{14449,-7723},{13622,-9102},{12665,-10393},{11585,-11585},{10393,-12665},{9102,-13622},{7723,-14449},{6269,-15136},{4756,-15678},{3196,-16069},{1605,-16305},{0,-16384},{-1605,-16305},{-3196,-16069},{-4756,-15678},{-6269,-15136},{-7723,-14449},{-9102,-13622},{-10393,-12665},{-11585,-11585},{-12665,-10393},{-13622,-9102},{-14449,-7723},{-15136,-6269},{-15678,-4756},{-16069,-3196},{-16305,-1605},};

static cint16 omg_128[]={{16384,0},{16364,-803},{16305,-1605},{16206,-2404},{16069,-3196},{15892,-3980},{15678,-4756},{15426,-5519},{15136,-6269},{14810,-7005},{14449,-7723},{14053,-8423},{13622,-9102},{13159,-9759},{12665,-10393},{12139,-11002},{11585,-11585},{11002,-12139},{10393,-12665},{9759,-13159},{9102,-13622},{8423,-14053},{7723,-14449},{7005,-14810},{6269,-15136},{5519,-15426},{4756,-15678},{3980,-15892},{3196,-16069},{2404,-16206},{1605,-16305},{803,-16364},{0,-16384},{-803,-16364},{-1605,-16305},{-2404,-16206},{-3196,-16069},{-3980,-15892},{-4756,-15678},{-5519,-15426},{-6269,-15136},{-7005,-14810},{-7723,-14449},{-8423,-14053},{-9102,-13622},{-9759,-13159},{-10393,-12665},{-11002,-12139},{-11585,-11585},{-12139,-11002},{-12665,-10393},{-13159,-9759},{-13622,-9102},{-14053,-8423},{-14449,-7723},{-14810,-7005},{-15136,-6269},{-15426,-5519},{-15678,-4756},{-15892,-3980},{-16069,-3196},{-16206,-2404},{-16305,-1605},{-16364,-803},};

static cint16 omg_256[]={{16384,0},{16379,-402},{16364,-803},{16339,-1205},{16305,-1605},{16260,-2005},{16206,-2404},{16142,-2801},{16069,-3196},{15985,-3589},{15892,-3980},{15790,-4369},{15678,-4756},{15557,-5139},{15426,-5519},{15286,-5896},{15136,-6269},{14978,-6639},{14810,-7005},{14634,-7366},{14449,-7723},{14255,-8075},{14053,-8423},{13842,-8765},{13622,-9102},{13395,-9434},{13159,-9759},{12916,-10079},{12665,-10393},{12406,-10701},{12139,-11002},{11866,-11297},{11585,-11585},{11297,-11866},{11002,-12139},{10701,-12406},{10393,-12665},{10079,-12916},{9759,-13159},{9434,-13395},{9102,-13622},{8765,-13842},{8423,-14053},{8075,-14255},{7723,-14449},{7366,-14634},{7005,-14810},{6639,-14978},{6269,-15136},{5896,-15286},{5519,-15426},{5139,-15557},{4756,-15678},{4369,-15790},{3980,-15892},{3589,-15985},{3196,-16069},{2801,-16142},{2404,-16206},{2005,-16260},{1605,-16305},{1205,-16339},{803,-16364},{402,-16379},{0,-16384},{-402,-16379},{-803,-16364},{-1205,-16339},{-1605,-16305},{-2005,-16260},{-2404,-16206},{-2801,-16142},{-3196,-16069},{-3589,-15985},{-3980,-15892},{-4369,-15790},{-4756,-15678},{-5139,-15557},{-5519,-15426},{-5896,-15286},{-6269,-15136},{-6639,-14978},{-7005,-14810},{-7366,-14634},{-7723,-14449},{-8075,-14255},{-8423,-14053},{-8765,-13842},{-9102,-13622},{-9434,-13395},{-9759,-13159},{-10079,-12916},{-10393,-12665},{-10701,-12406},{-11002,-12139},{-11297,-11866},{-11585,-11585},{-11866,-11297},{-12139,-11002},{-12406,-10701},{-12665,-10393},{-12916,-10079},{-13159,-9759},{-13395,-9434},{-13622,-9102},{-13842,-8765},{-14053,-8423},{-14255,-8075},{-14449,-7723},{-14634,-7366},{-14810,-7005},{-14978,-6639},{-15136,-6269},{-15286,-5896},{-15426,-5519},{-15557,-5139},{-15678,-4756},{-15790,-4369},{-15892,-3980},{-15985,-3589},{-16069,-3196},{-16142,-2801},{-16206,-2404},{-16260,-2005},{-16305,-1605},{-16339,-1205},{-16364,-803},{-16379,-402},};

static cint16 omg_512[]={{16384,0},{16382,-201},{16379,-402},{16372,-603},{16364,-803},{16353,-1004},{16339,-1205},{16323,-1405},{16305,-1605},{16284,-1805},{16260,-2005},{16234,-2204},{16206,-2404},{16175,-2602},{16142,-2801},{16107,-2998},{16069,-3196},{16028,-3393},{15985,-3589},{15940,-3785},{15892,-3980},{15842,-4175},{15790,-4369},{15735,-4563},{15678,-4756},{15618,-4948},{15557,-5139},{15492,-5329},{15426,-5519},{15357,-5708},{15286,-5896},{15212,-6083},{15136,-6269},{15058,-6455},{14978,-6639},{14895,-6822},{14810,-7005},{14723,-7186},{14634,-7366},{14543,-7545},{14449,-7723},{14353,-7900},{14255,-8075},{14155,-8249},{14053,-8423},{13948,-8594},{13842,-8765},{13733,-8934},{13622,-9102},{13510,-9268},{13395,-9434},{13278,-9597},{13159,-9759},{13038,-9920},{12916,-10079},{12791,-10237},{12665,-10393},{12536,-10548},{12406,-10701},{12273,-10853},{12139,-11002},{12003,-11150},{11866,-11297},{11726,-11442},{11585,-11585},{11442,-11726},{11297,-11866},{11150,-12003},{11002,-12139},{10853,-12273},{10701,-12406},{10548,-12536},{10393,-12665},{10237,-12791},{10079,-12916},{9920,-13038},{9759,-13159},{9597,-13278},{9434,-13395},{9268,-13510},{9102,-13622},{8934,-13733},{8765,-13842},{8594,-13948},{8423,-14053},{8249,-14155},{8075,-14255},{7900,-14353},{7723,-14449},{7545,-14543},{7366,-14634},{7186,-14723},{7005,-14810},{6822,-14895},{6639,-14978},{6455,-15058},{6269,-15136},{6083,-15212},{5896,-15286},{5708,-15357},{5519,-15426},{5329,-15492},{5139,-15557},{4948,-15618},{4756,-15678},{4563,-15735},{4369,-15790},{4175,-15842},{3980,-15892},{3785,-15940},{3589,-15985},{3393,-16028},{3196,-16069},{2998,-16107},{2801,-16142},{2602,-16175},{2404,-16206},{2204,-16234},{2005,-16260},{1805,-16284},{1605,-16305},{1405,-16323},{1205,-16339},{1004,-16353},{803,-16364},{603,-16372},{402,-16379},{201,-16382},{0,-16384},{-201,-16382},{-402,-16379},{-603,-16372},{-803,-16364},{-1004,-16353},{-1205,-16339},{-1405,-16323},{-1605,-16305},{-1805,-16284},{-2005,-16260},{-2204,-16234},{-2404,-16206},{-2602,-16175},{-2801,-16142},{-2998,-16107},{-3196,-16069},{-3393,-16028},{-3589,-15985},{-3785,-15940},{-3980,-15892},{-4175,-15842},{-4369,-15790},{-4563,-15735},{-4756,-15678},{-4948,-15618},{-5139,-15557},{-5329,-15492},{-5519,-15426},{-5708,-15357},{-5896,-15286},{-6083,-15212},{-6269,-15136},{-6455,-15058},{-6639,-14978},{-6822,-14895},{-7005,-14810},{-7186,-14723},{-7366,-14634},{-7545,-14543},{-7723,-14449},{-7900,-14353},{-8075,-14255},{-8249,-14155},{-8423,-14053},{-8594,-13948},{-8765,-13842},{-8934,-13733},{-9102,-13622},{-9268,-13510},{-9434,-13395},{-9597,-13278},{-9759,-13159},{-9920,-13038},{-10079,-12916},{-10237,-12791},{-10393,-12665},{-10548,-12536},{-10701,-12406},{-10853,-12273},{-11002,-12139},{-11150,-12003},{-11297,-11866},{-11442,-11726},{-11585,-11585},{-11726,-11442},{-11866,-11297},{-12003,-11150},{-12139,-11002},{-12273,-10853},{-12406,-10701},{-12536,-10548},{-12665,-10393},{-12791,-10237},{-12916,-10079},{-13038,-9920},{-13159,-9759},{-13278,-9597},{-13395,-9434},{-13510,-9268},{-13622,-9102},{-13733,-8934},{-13842,-8765},{-13948,-8594},{-14053,-8423},{-14155,-8249},{-14255,-8075},{-14353,-7900},{-14449,-7723},{-14543,-7545},{-14634,-7366},{-14723,-7186},{-14810,-7005},{-14895,-6822},{-14978,-6639},{-15058,-6455},{-15136,-6269},{-15212,-6083},{-15286,-5896},{-15357,-5708},{-15426,-5519},{-15492,-5329},{-15557,-5139},{-15618,-4948},{-15678,-4756},{-15735,-4563},{-15790,-4369},{-15842,-4175},{-15892,-3980},{-15940,-3785},{-15985,-3589},{-16028,-3393},{-16069,-3196},{-16107,-2998},{-16142,-2801},{-16175,-2602},{-16206,-2404},{-16234,-2204},{-16260,-2005},{-16284,-1805},{-16305,-1605},{-16323,-1405},{-16339,-1205},{-16353,-1004},{-16364,-803},{-16372,-603},{-16379,-402},{-16382,-201},};

static cint16 omg_1024[]={{16384,0},{16383,-100},{16382,-201},{16381,-301},{16379,-402},{16376,-502},{16372,-603},{16368,-703},{16364,-803},{16359,-904},{16353,-1004},{16346,-1105},{16339,-1205},{16331,-1305},{16323,-1405},{16314,-1505},{16305,-1605},{16294,-1705},{16284,-1805},{16272,-1905},{16260,-2005},{16248,-2105},{16234,-2204},{16221,-2304},{16206,-2404},{16191,-2503},{16175,-2602},{16159,-2701},{16142,-2801},{16125,-2900},{16107,-2998},{16088,-3097},{16069,-3196},{16049,-3294},{16028,-3393},{16007,-3491},{15985,-3589},{15963,-3687},{15940,-3785},{15917,-3883},{15892,-3980},{15868,-4078},{15842,-4175},{15817,-4272},{15790,-4369},{15763,-4466},{15735,-4563},{15707,-4659},{15678,-4756},{15649,-4852},{15618,-4948},{15588,-5043},{15557,-5139},{15525,-5234},{15492,-5329},{15459,-5424},{15426,-5519},{15392,-5614},{15357,-5708},{15322,-5802},{15286,-5896},{15249,-5990},{15212,-6083},{15175,-6176},{15136,-6269},{15098,-6362},{15058,-6455},{15018,-6547},{14978,-6639},{14937,-6731},{14895,-6822},{14853,-6914},{14810,-7005},{14767,-7095},{14723,-7186},{14679,-7276},{14634,-7366},{14589,-7456},{14543,-7545},{14496,-7634},{14449,-7723},{14401,-7811},{14353,-7900},{14304,-7988},{14255,-8075},{14205,-8162},{14155,-8249},{14104,-8336},{14053,-8423},{14001,-8509},{13948,-8594},{13895,-8680},{13842,-8765},{13788,-8850},{13733,-8934},{13678,-9018},{13622,-9102},{13566,-9185},{13510,-9268},{13452,-9351},{13395,-9434},{13337,-9516},{13278,-9597},{13219,-9679},{13159,-9759},{13099,-9840},{13038,-9920},{12977,-10000},{12916,-10079},{12854,-10159},{12791,-10237},{12728,-10315},{12665,-10393},{12600,-10471},{12536,-10548},{12471,-10625},{12406,-10701},{12340,-10777},{12273,-10853},{12207,-10928},{12139,-11002},{12072,-11077},{12003,-11150},{11935,-11224},{11866,-11297},{11796,-11370},{11726,-11442},{11656,-11513},{11585,-11585},{11513,-11656},{11442,-11726},{11370,-11796},{11297,-11866},{11224,-11935},{11150,-12003},{11077,-12072},{11002,-12139},{10928,-12207},{10853,-12273},{10777,-12340},{10701,-12406},{10625,-12471},{10548,-12536},{10471,-12600},{10393,-12665},{10315,-12728},{10237,-12791},{10159,-12854},{10079,-12916},{10000,-12977},{9920,-13038},{9840,-13099},{9759,-13159},{9679,-13219},{9597,-13278},{9516,-13337},{9434,-13395},{9351,-13452},{9268,-13510},{9185,-13566},{9102,-13622},{9018,-13678},{8934,-13733},{8850,-13788},{8765,-13842},{8680,-13895},{8594,-13948},{8509,-14001},{8423,-14053},{8336,-14104},{8249,-14155},{8162,-14205},{8075,-14255},{7988,-14304},{7900,-14353},{7811,-14401},{7723,-14449},{7634,-14496},{7545,-14543},{7456,-14589},{7366,-14634},{7276,-14679},{7186,-14723},{7095,-14767},{7005,-14810},{6914,-14853},{6822,-14895},{6731,-14937},{6639,-14978},{6547,-15018},{6455,-15058},{6362,-15098},{6269,-15136},{6176,-15175},{6083,-15212},{5990,-15249},{5896,-15286},{5802,-15322},{5708,-15357},{5614,-15392},{5519,-15426},{5424,-15459},{5329,-15492},{5234,-15525},{5139,-15557},{5043,-15588},{4948,-15618},{4852,-15649},{4756,-15678},{4659,-15707},{4563,-15735},{4466,-15763},{4369,-15790},{4272,-15817},{4175,-15842},{4078,-15868},{3980,-15892},{3883,-15917},{3785,-15940},{3687,-15963},{3589,-15985},{3491,-16007},{3393,-16028},{3294,-16049},{3196,-16069},{3097,-16088},{2998,-16107},{2900,-16125},{2801,-16142},{2701,-16159},{2602,-16175},{2503,-16191},{2404,-16206},{2304,-16221},{2204,-16234},{2105,-16248},{2005,-16260},{1905,-16272},{1805,-16284},{1705,-16294},{1605,-16305},{1505,-16314},{1405,-16323},{1305,-16331},{1205,-16339},{1105,-16346},{1004,-16353},{904,-16359},{803,-16364},{703,-16368},{603,-16372},{502,-16376},{402,-16379},{301,-16381},{201,-16382},{100,-16383},{0,-16384},{-100,-16383},{-201,-16382},{-301,-16381},{-402,-16379},{-502,-16376},{-603,-16372},{-703,-16368},{-803,-16364},{-904,-16359},{-1004,-16353},{-1105,-16346},{-1205,-16339},{-1305,-16331},{-1405,-16323},{-1505,-16314},{-1605,-16305},{-1705,-16294},{-1805,-16284},{-1905,-16272},{-2005,-16260},{-2105,-16248},{-2204,-16234},{-2304,-16221},{-2404,-16206},{-2503,-16191},{-2602,-16175},{-2701,-16159},{-2801,-16142},{-2900,-16125},{-2998,-16107},{-3097,-16088},{-3196,-16069},{-3294,-16049},{-3393,-16028},{-3491,-16007},{-3589,-15985},{-3687,-15963},{-3785,-15940},{-3883,-15917},{-3980,-15892},{-4078,-15868},{-4175,-15842},{-4272,-15817},{-4369,-15790},{-4466,-15763},{-4563,-15735},{-4659,-15707},{-4756,-15678},{-4852,-15649},{-4948,-15618},{-5043,-15588},{-5139,-15557},{-5234,-15525},{-5329,-15492},{-5424,-15459},{-5519,-15426},{-5614,-15392},{-5708,-15357},{-5802,-15322},{-5896,-15286},{-5990,-15249},{-6083,-15212},{-6176,-15175},{-6269,-15136},{-6362,-15098},{-6455,-15058},{-6547,-15018},{-6639,-14978},{-6731,-14937},{-6822,-14895},{-6914,-14853},{-7005,-14810},{-7095,-14767},{-7186,-14723},{-7276,-14679},{-7366,-14634},{-7456,-14589},{-7545,-14543},{-7634,-14496},{-7723,-14449},{-7811,-14401},{-7900,-14353},{-7988,-14304},{-8075,-14255},{-8162,-14205},{-8249,-14155},{-8336,-14104},{-8423,-14053},{-8509,-14001},{-8594,-13948},{-8680,-13895},{-8765,-13842},{-8850,-13788},{-8934,-13733},{-9018,-13678},{-9102,-13622},{-9185,-13566},{-9268,-13510},{-9351,-13452},{-9434,-13395},{-9516,-13337},{-9597,-13278},{-9679,-13219},{-9759,-13159},{-9840,-13099},{-9920,-13038},{-10000,-12977},{-10079,-12916},{-10159,-12854},{-10237,-12791},{-10315,-12728},{-10393,-12665},{-10471,-12600},{-10548,-12536},{-10625,-12471},{-10701,-12406},{-10777,-12340},{-10853,-12273},{-10928,-12207},{-11002,-12139},{-11077,-12072},{-11150,-12003},{-11224,-11935},{-11297,-11866},{-11370,-11796},{-11442,-11726},{-11513,-11656},{-11585,-11585},{-11656,-11513},{-11726,-11442},{-11796,-11370},{-11866,-11297},{-11935,-11224},{-12003,-11150},{-12072,-11077},{-12139,-11002},{-12207,-10928},{-12273,-10853},{-12340,-10777},{-12406,-10701},{-12471,-10625},{-12536,-10548},{-12600,-10471},{-12665,-10393},{-12728,-10315},{-12791,-10237},{-12854,-10159},{-12916,-10079},{-12977,-10000},{-13038,-9920},{-13099,-9840},{-13159,-9759},{-13219,-9679},{-13278,-9597},{-13337,-9516},{-13395,-9434},{-13452,-9351},{-13510,-9268},{-13566,-9185},{-13622,-9102},{-13678,-9018},{-13733,-8934},{-13788,-8850},{-13842,-8765},{-13895,-8680},{-13948,-8594},{-14001,-8509},{-14053,-8423},{-14104,-8336},{-14155,-8249},{-14205,-8162},{-14255,-8075},{-14304,-7988},{-14353,-7900},{-14401,-7811},{-14449,-7723},{-14496,-7634},{-14543,-7545},{-14589,-7456},{-14634,-7366},{-14679,-7276},{-14723,-7186},{-14767,-7095},{-14810,-7005},{-14853,-6914},{-14895,-6822},{-14937,-6731},{-14978,-6639},{-15018,-6547},{-15058,-6455},{-15098,-6362},{-15136,-6269},{-15175,-6176},{-15212,-6083},{-15249,-5990},{-15286,-5896},{-15322,-5802},{-15357,-5708},{-15392,-5614},{-15426,-5519},{-15459,-5424},{-15492,-5329},{-15525,-5234},{-15557,-5139},{-15588,-5043},{-15618,-4948},{-15649,-4852},{-15678,-4756},{-15707,-4659},{-15735,-4563},{-15763,-4466},{-15790,-4369},{-15817,-4272},{-15842,-4175},{-15868,-4078},{-15892,-3980},{-15917,-3883},{-15940,-3785},{-15963,-3687},{-15985,-3589},{-16007,-3491},{-16028,-3393},{-16049,-3294},{-16069,-3196},{-16088,-3097},{-16107,-2998},{-16125,-2900},{-16142,-2801},{-16159,-2701},{-16175,-2602},{-16191,-2503},{-16206,-2404},{-16221,-2304},{-16234,-2204},{-16248,-2105},{-16260,-2005},{-16272,-1905},{-16284,-1805},{-16294,-1705},{-16305,-1605},{-16314,-1505},{-16323,-1405},{-16331,-1305},{-16339,-1205},{-16346,-1105},{-16353,-1004},{-16359,-904},{-16364,-803},{-16368,-703},{-16372,-603},{-16376,-502},{-16379,-402},{-16381,-301},{-16382,-201},{-16383,-100},};

static cint16 tf1[]={{16384,0},{16383,-25},{16383,-50},{16383,-75},{16383,-100},{16383,-125},{16383,-150},{16383,-175},{16382,-201},{16382,-226},{16382,-251},{16381,-276},{16381,-301},{16380,-326},{16380,-351},{16379,-376},{16379,-402},{16378,-427},{16377,-452},{16377,-477},{16376,-502},{16375,-527},{16374,-552},{16373,-577},{16372,-603},{16371,-628},{16370,-653},{16369,-678},{16368,-703},{16367,-728},{16366,-753},{16365,-778},{16364,-803},{16363,-829},{16361,-854},{16360,-879},{16359,-904},{16357,-929},{16356,-954},{16354,-979},{16353,-1004},{16351,-1029},{16350,-1054},{16348,-1079},{16346,-1105},{16344,-1130},{16343,-1155},{16341,-1180},{16339,-1205},{16337,-1230},{16335,-1255},{16333,-1280},{16331,-1305},{16329,-1330},{16327,-1355},{16325,-1380},{16323,-1405},{16321,-1430},{16319,-1455},{16316,-1480},{16314,-1505},{16312,-1530},{16309,-1555},{16307,-1580},{16305,-1605},{16302,-1630},{16300,-1655},{16297,-1680},{16294,-1705},{16292,-1730},{16289,-1755},{16286,-1780},{16284,-1805},{16281,-1830},{16278,-1855},{16275,-1880},{16272,-1905},{16269,-1930},{16266,-1955},{16263,-1980},{16260,-2005},{16257,-2030},{16254,-2055},{16251,-2080},{16248,-2105},{16244,-2130},{16241,-2155},{16238,-2180},{16234,-2204},{16231,-2229},{16228,-2254},{16224,-2279},{16221,-2304},{16217,-2329},{16213,-2354},{16210,-2379},{16206,-2404},{16202,-2428},{16199,-2453},{16195,-2478},{16191,-2503},{16187,-2528},{16183,-2553},{16179,-2577},{16175,-2602},{16171,-2627},{16167,-2652},{16163,-2677},{16159,-2701},{16155,-2726},{16151,-2751},{16147,-2776},{16142,-2801},{16138,-2825},{16134,-2850},{16129,-2875},{16125,-2900},{16120,-2924},{16116,-2949},{16111,-2974},{16107,-2998},{16102,-3023},{16097,-3048},{16093,-3073},{16088,-3097},{16083,-3122},{16078,-3147},{16074,-3171},{16069,-3196},{16064,-3221},{16059,-3245},{16054,-3270},{16049,-3294},{16044,-3319},{16039,-3344},{16033,-3368},{16028,-3393},{16023,-3417},{16018,-3442},{16012,-3467},{16007,-3491},{16002,-3516},{15996,-3540},{15991,-3565},{15985,-3589},{15980,-3614},{15974,-3638},{15969,-3663},{15963,-3687},{15957,-3712},{15952,-3736},{15946,-3761},{15940,-3785},{15934,-3810},{15928,-3834},{15923,-3858},{15917,-3883},{15911,-3907},{15905,-3932},{15899,-3956},{15892,-3980},{15886,-4005},{15880,-4029},{15874,-4054},{15868,-4078},{15861,-4102},{15855,-4127},{15849,-4151},{15842,-4175},{15836,-4200},{15830,-4224},{15823,-4248},{15817,-4272},{15810,-4297},{15803,-4321},{15797,-4345},{15790,-4369},{15783,-4394},{15777,-4418},{15770,-4442},{15763,-4466},{15756,-4490},{15749,-4514},{15742,-4539},{15735,-4563},{15728,-4587},{15721,-4611},{15714,-4635},{15707,-4659},{15700,-4683},{15693,-4707},{15685,-4731},{15678,-4756},{15671,-4780},{15663,-4804},{15656,-4828},{15649,-4852},{15641,-4876},{15634,-4900},{15626,-4924},{15618,-4948},{15611,-4972},{15603,-4995},{15596,-5019},{15588,-5043},{15580,-5067},{15572,-5091},{15564,-5115},{15557,-5139},{15549,-5163},{15541,-5187},{15533,-5210},{15525,-5234},{15517,-5258},{15509,-5282},{15500,-5306},{15492,-5329},{15484,-5353},{15476,-5377},{15468,-5401},{15459,-5424},{15451,-5448},{15443,-5472},{15434,-5495},{15426,-5519},{15417,-5543},{15409,-5566},{15400,-5590},{15392,-5614},{15383,-5637},{15374,-5661},{15366,-5684},{15357,-5708},{15348,-5732},{15339,-5755},{15330,-5779},{15322,-5802},{15313,-5826},{15304,-5849},{15295,-5873},{15286,-5896},{15277,-5919},{15267,-5943},{15258,-5966},{15249,-5990},{15240,-6013},{15231,-6036},{15221,-6060},{15212,-6083},{15203,-6106},{15193,-6130},{15184,-6153},{15175,-6176},{15165,-6200},{15156,-6223},{15146,-6246},{15136,-6269},{15127,-6293},{15117,-6316},{15107,-6339},{15098,-6362},{15088,-6385},{15078,-6408},{15068,-6432},{15058,-6455},{15048,-6478},{15038,-6501},{15028,-6524},{15018,-6547},{15008,-6570},{14998,-6593},{14988,-6616},{14978,-6639},{14968,-6662},{14957,-6685},{14947,-6708},{14937,-6731},{14927,-6754},{14916,-6777},{14906,-6799},{14895,-6822},{14885,-6845},{14874,-6868},{14864,-6891},{14853,-6914},{14843,-6936},{14832,-6959},{14821,-6982},{14810,-7005},{14800,-7027},{14789,-7050},{14778,-7073},{14767,-7095},{14756,-7118},{14745,-7141},{14734,-7163},{14723,-7186},{14712,-7208},{14701,-7231},{14690,-7253},{14679,-7276},{14668,-7299},{14657,-7321},{14645,-7343},{14634,-7366},{14623,-7388},{14611,-7411},{14600,-7433},{14589,-7456},{14577,-7478},{14566,-7500},{14554,-7523},{14543,-7545},{14531,-7567},{14519,-7590},{14508,-7612},{14496,-7634},{14484,-7656},{14473,-7678},{14461,-7701},{14449,-7723},{14437,-7745},{14425,-7767},{14413,-7789},{14401,-7811},{14389,-7833},{14377,-7856},{14365,-7878},{14353,-7900},{14341,-7922},{14329,-7944},{14317,-7966},{14304,-7988},{14292,-8009},{14280,-8031},{14267,-8053},{14255,-8075},{14243,-8097},{14230,-8119},{14218,-8141},{14205,-8162},{14193,-8184},{14180,-8206},{14167,-8228},{14155,-8249},{14142,-8271},{14129,-8293},{14117,-8315},{14104,-8336},{14091,-8358},{14078,-8379},{14065,-8401},{14053,-8423},{14040,-8444},{14027,-8466},{14014,-8487},{14001,-8509},{13988,-8530},{13974,-8552},{13961,-8573},{13948,-8594},{13935,-8616},{13922,-8637},{13908,-8658},{13895,-8680},{13882,-8701},{13868,-8722},{13855,-8744},{13842,-8765},{13828,-8786},{13815,-8807},{13801,-8829},{13788,-8850},{13774,-8871},{13760,-8892},{13747,-8913},{13733,-8934},{13719,-8955},{13705,-8976},{13692,-8997},{13678,-9018},{13664,-9039},{13650,-9060},{13636,-9081},{13622,-9102},{13608,-9123},{13594,-9144},{13580,-9165},{13566,-9185},{13552,-9206},{13538,-9227},{13524,-9248},{13510,-9268},{13495,-9289},{13481,-9310},{13467,-9331},{13452,-9351},{13438,-9372},{13424,-9392},{13409,-9413},{13395,-9434},{13380,-9454},{13366,-9475},{13351,-9495},{13337,-9516},{13322,-9536},{13307,-9556},{13293,-9577},{13278,-9597},{13263,-9618},{13249,-9638},{13234,-9658},{13219,-9679},{13204,-9699},{13189,-9719},{13174,-9739},{13159,-9759},{13144,-9780},{13129,-9800},{13114,-9820},{13099,-9840},{13084,-9860},{13069,-9880},{13054,-9900},{13038,-9920},{13023,-9940},{13008,-9960},{12993,-9980},{12977,-10000},{12962,-10020},{12947,-10040},{12931,-10060},{12916,-10079},{12900,-10099},{12885,-10119},{12869,-10139},{12854,-10159},{12838,-10178},{12822,-10198},{12807,-10218},{12791,-10237},{12775,-10257},{12760,-10276},{12744,-10296},{12728,-10315},{12712,-10335},{12696,-10354},{12680,-10374},{12665,-10393},{12649,-10413},{12633,-10432},{12617,-10452},{12600,-10471},{12584,-10490},{12568,-10510},{12552,-10529},{12536,-10548},{12520,-10567},{12504,-10586},{12487,-10606},{12471,-10625},{12455,-10644},{12438,-10663},{12422,-10682},{12406,-10701},{12389,-10720},{12373,-10739},{12356,-10758},{12340,-10777},{12323,-10796},{12307,-10815},{12290,-10834},{12273,-10853},{12257,-10871},{12240,-10890},{12223,-10909},{12207,-10928},{12190,-10946},{12173,-10965},{12156,-10984},{12139,-11002},{12122,-11021},{12105,-11040},{12088,-11058},{12072,-11077},{12054,-11095},{12037,-11114},{12020,-11132},{12003,-11150},{11986,-11169},{11969,-11187},{11952,-11206},{11935,-11224},{11917,-11242},{11900,-11260},{11883,-11279},{11866,-11297},{11848,-11315},{11831,-11333},{11813,-11351},{11796,-11370},{11779,-11388},{11761,-11406},{11744,-11424},{11726,-11442},{11708,-11460},{11691,-11478},{11673,-11496},{11656,-11513},{11638,-11531},{11620,-11549},{11602,-11567},{11585,-11585},{11567,-11602},{11549,-11620},{11531,-11638},{11513,-11656},{11496,-11673},{11478,-11691},{11460,-11708},{11442,-11726},{11424,-11744},{11406,-11761},{11388,-11779},{11370,-11796},{11351,-11813},{11333,-11831},{11315,-11848},{11297,-11866},{11279,-11883},{11260,-11900},{11242,-11917},{11224,-11935},{11206,-11952},{11187,-11969},{11169,-11986},{11150,-12003},{11132,-12020},{11114,-12037},{11095,-12054},{11077,-12072},{11058,-12088},{11040,-12105},{11021,-12122},{11002,-12139},{10984,-12156},{10965,-12173},{10946,-12190},{10928,-12207},{10909,-12223},{10890,-12240},{10871,-12257},{10853,-12273},{10834,-12290},{10815,-12307},{10796,-12323},{10777,-12340},{10758,-12356},{10739,-12373},{10720,-12389},{10701,-12406},{10682,-12422},{10663,-12438},{10644,-12455},{10625,-12471},{10606,-12487},{10586,-12504},{10567,-12520},{10548,-12536},{10529,-12552},{10510,-12568},{10490,-12584},{10471,-12600},{10452,-12617},{10432,-12633},{10413,-12649},{10393,-12665},{10374,-12680},{10354,-12696},{10335,-12712},{10315,-12728},{10296,-12744},{10276,-12760},{10257,-12775},{10237,-12791},{10218,-12807},{10198,-12822},{10178,-12838},{10159,-12854},{10139,-12869},{10119,-12885},{10099,-12900},{10079,-12916},{10060,-12931},{10040,-12947},{10020,-12962},{10000,-12977},{9980,-12993},{9960,-13008},{9940,-13023},{9920,-13038},{9900,-13054},{9880,-13069},{9860,-13084},{9840,-13099},{9820,-13114},{9800,-13129},{9780,-13144},{9759,-13159},{9739,-13174},{9719,-13189},{9699,-13204},{9679,-13219},{9658,-13234},{9638,-13249},{9618,-13263},{9597,-13278},{9577,-13293},{9556,-13307},{9536,-13322},{9516,-13337},{9495,-13351},{9475,-13366},{9454,-13380},{9434,-13395},{9413,-13409},{9392,-13424},{9372,-13438},{9351,-13452},{9331,-13467},{9310,-13481},{9289,-13495},{9268,-13510},{9248,-13524},{9227,-13538},{9206,-13552},{9185,-13566},{9165,-13580},{9144,-13594},{9123,-13608},{9102,-13622},{9081,-13636},{9060,-13650},{9039,-13664},{9018,-13678},{8997,-13692},{8976,-13705},{8955,-13719},{8934,-13733},{8913,-13747},{8892,-13760},{8871,-13774},{8850,-13788},{8829,-13801},{8807,-13815},{8786,-13828},{8765,-13842},{8744,-13855},{8722,-13868},{8701,-13882},{8680,-13895},{8658,-13908},{8637,-13922},{8616,-13935},{8594,-13948},{8573,-13961},{8552,-13974},{8530,-13988},{8509,-14001},{8487,-14014},{8466,-14027},{8444,-14040},{8423,-14053},{8401,-14065},{8379,-14078},{8358,-14091},{8336,-14104},{8315,-14117},{8293,-14129},{8271,-14142},{8249,-14155},{8228,-14167},{8206,-14180},{8184,-14193},{8162,-14205},{8141,-14218},{8119,-14230},{8097,-14243},{8075,-14255},{8053,-14267},{8031,-14280},{8009,-14292},{7988,-14304},{7966,-14317},{7944,-14329},{7922,-14341},{7900,-14353},{7878,-14365},{7856,-14377},{7833,-14389},{7811,-14401},{7789,-14413},{7767,-14425},{7745,-14437},{7723,-14449},{7701,-14461},{7678,-14473},{7656,-14484},{7634,-14496},{7612,-14508},{7590,-14519},{7567,-14531},{7545,-14543},{7523,-14554},{7500,-14566},{7478,-14577},{7456,-14589},{7433,-14600},{7411,-14611},{7388,-14623},{7366,-14634},{7343,-14645},{7321,-14657},{7299,-14668},{7276,-14679},{7253,-14690},{7231,-14701},{7208,-14712},{7186,-14723},{7163,-14734},{7141,-14745},{7118,-14756},{7095,-14767},{7073,-14778},{7050,-14789},{7027,-14800},{7005,-14810},{6982,-14821},{6959,-14832},{6936,-14843},{6914,-14853},{6891,-14864},{6868,-14874},{6845,-14885},{6822,-14895},{6799,-14906},{6777,-14916},{6754,-14927},{6731,-14937},{6708,-14947},{6685,-14957},{6662,-14968},{6639,-14978},{6616,-14988},{6593,-14998},{6570,-15008},{6547,-15018},{6524,-15028},{6501,-15038},{6478,-15048},{6455,-15058},{6432,-15068},{6408,-15078},{6385,-15088},{6362,-15098},{6339,-15107},{6316,-15117},{6293,-15127},{6269,-15136},{6246,-15146},{6223,-15156},{6200,-15165},{6176,-15175},{6153,-15184},{6130,-15193},{6106,-15203},{6083,-15212},{6060,-15221},{6036,-15231},{6013,-15240},{5990,-15249},{5966,-15258},{5943,-15267},{5919,-15277},{5896,-15286},{5873,-15295},{5849,-15304},{5826,-15313},{5802,-15322},{5779,-15330},{5755,-15339},{5732,-15348},{5708,-15357},{5684,-15366},{5661,-15374},{5637,-15383},{5614,-15392},{5590,-15400},{5566,-15409},{5543,-15417},{5519,-15426},{5495,-15434},{5472,-15443},{5448,-15451},{5424,-15459},{5401,-15468},{5377,-15476},{5353,-15484},{5329,-15492},{5306,-15500},{5282,-15509},{5258,-15517},{5234,-15525},{5210,-15533},{5187,-15541},{5163,-15549},{5139,-15557},{5115,-15564},{5091,-15572},{5067,-15580},{5043,-15588},{5019,-15596},{4995,-15603},{4972,-15611},{4948,-15618},{4924,-15626},{4900,-15634},{4876,-15641},{4852,-15649},{4828,-15656},{4804,-15663},{4780,-15671},{4756,-15678},{4731,-15685},{4707,-15693},{4683,-15700},{4659,-15707},{4635,-15714},{4611,-15721},{4587,-15728},{4563,-15735},{4539,-15742},{4514,-15749},{4490,-15756},{4466,-15763},{4442,-15770},{4418,-15777},{4394,-15783},{4369,-15790},{4345,-15797},{4321,-15803},{4297,-15810},{4272,-15817},{4248,-15823},{4224,-15830},{4200,-15836},{4175,-15842},{4151,-15849},{4127,-15855},{4102,-15861},{4078,-15868},{4054,-15874},{4029,-15880},{4005,-15886},{3980,-15892},{3956,-15899},{3932,-15905},{3907,-15911},{3883,-15917},{3858,-15923},{3834,-15928},{3810,-15934},{3785,-15940},{3761,-15946},{3736,-15952},{3712,-15957},{3687,-15963},{3663,-15969},{3638,-15974},{3614,-15980},{3589,-15985},{3565,-15991},{3540,-15996},{3516,-16002},{3491,-16007},{3467,-16012},{3442,-16018},{3417,-16023},{3393,-16028},{3368,-16033},{3344,-16039},{3319,-16044},{3294,-16049},{3270,-16054},{3245,-16059},{3221,-16064},{3196,-16069},{3171,-16074},{3147,-16078},{3122,-16083},{3097,-16088},{3073,-16093},{3048,-16097},{3023,-16102},{2998,-16107},{2974,-16111},{2949,-16116},{2924,-16120},{2900,-16125},{2875,-16129},{2850,-16134},{2825,-16138},{2801,-16142},{2776,-16147},{2751,-16151},{2726,-16155},{2701,-16159},{2677,-16163},{2652,-16167},{2627,-16171},{2602,-16175},{2577,-16179},{2553,-16183},{2528,-16187},{2503,-16191},{2478,-16195},{2453,-16199},{2428,-16202},{2404,-16206},{2379,-16210},{2354,-16213},{2329,-16217},{2304,-16221},{2279,-16224},{2254,-16228},{2229,-16231},{2204,-16234},{2180,-16238},{2155,-16241},{2130,-16244},{2105,-16248},{2080,-16251},{2055,-16254},{2030,-16257},{2005,-16260},{1980,-16263},{1955,-16266},{1930,-16269},{1905,-16272},{1880,-16275},{1855,-16278},{1830,-16281},{1805,-16284},{1780,-16286},{1755,-16289},{1730,-16292},{1705,-16294},{1680,-16297},{1655,-16300},{1630,-16302},{1605,-16305},{1580,-16307},{1555,-16309},{1530,-16312},{1505,-16314},{1480,-16316},{1455,-16319},{1430,-16321},{1405,-16323},{1380,-16325},{1355,-16327},{1330,-16329},{1305,-16331},{1280,-16333},{1255,-16335},{1230,-16337},{1205,-16339},{1180,-16341},{1155,-16343},{1130,-16344},{1105,-16346},{1079,-16348},{1054,-16350},{1029,-16351},{1004,-16353},{979,-16354},{954,-16356},{929,-16357},{904,-16359},{879,-16360},{854,-16361},{829,-16363},{803,-16364},{778,-16365},{753,-16366},{728,-16367},{703,-16368},{678,-16369},{653,-16370},{628,-16371},{603,-16372},{577,-16373},{552,-16374},{527,-16375},{502,-16376},{477,-16377},{452,-16377},{427,-16378},{402,-16379},{376,-16379},{351,-16380},{326,-16380},{301,-16381},{276,-16381},{251,-16382},{226,-16382},{201,-16382},{175,-16383},{150,-16383},{125,-16383},{100,-16383},{75,-16383},{50,-16383},{25,-16383},};

static cint16 tf2[]={{16384,0},{16383,-50},{16383,-100},{16383,-150},{16382,-201},{16382,-251},{16381,-301},{16380,-351},{16379,-402},{16377,-452},{16376,-502},{16374,-552},{16372,-603},{16370,-653},{16368,-703},{16366,-753},{16364,-803},{16361,-854},{16359,-904},{16356,-954},{16353,-1004},{16350,-1054},{16346,-1105},{16343,-1155},{16339,-1205},{16335,-1255},{16331,-1305},{16327,-1355},{16323,-1405},{16319,-1455},{16314,-1505},{16309,-1555},{16305,-1605},{16300,-1655},{16294,-1705},{16289,-1755},{16284,-1805},{16278,-1855},{16272,-1905},{16266,-1955},{16260,-2005},{16254,-2055},{16248,-2105},{16241,-2155},{16234,-2204},{16228,-2254},{16221,-2304},{16213,-2354},{16206,-2404},{16199,-2453},{16191,-2503},{16183,-2553},{16175,-2602},{16167,-2652},{16159,-2701},{16151,-2751},{16142,-2801},{16134,-2850},{16125,-2900},{16116,-2949},{16107,-2998},{16097,-3048},{16088,-3097},{16078,-3147},{16069,-3196},{16059,-3245},{16049,-3294},{16039,-3344},{16028,-3393},{16018,-3442},{16007,-3491},{15996,-3540},{15985,-3589},{15974,-3638},{15963,-3687},{15952,-3736},{15940,-3785},{15928,-3834},{15917,-3883},{15905,-3932},{15892,-3980},{15880,-4029},{15868,-4078},{15855,-4127},{15842,-4175},{15830,-4224},{15817,-4272},{15803,-4321},{15790,-4369},{15777,-4418},{15763,-4466},{15749,-4514},{15735,-4563},{15721,-4611},{15707,-4659},{15693,-4707},{15678,-4756},{15663,-4804},{15649,-4852},{15634,-4900},{15618,-4948},{15603,-4995},{15588,-5043},{15572,-5091},{15557,-5139},{15541,-5187},{15525,-5234},{15509,-5282},{15492,-5329},{15476,-5377},{15459,-5424},{15443,-5472},{15426,-5519},{15409,-5566},{15392,-5614},{15374,-5661},{15357,-5708},{15339,-5755},{15322,-5802},{15304,-5849},{15286,-5896},{15267,-5943},{15249,-5990},{15231,-6036},{15212,-6083},{15193,-6130},{15175,-6176},{15156,-6223},{15136,-6269},{15117,-6316},{15098,-6362},{15078,-6408},{15058,-6455},{15038,-6501},{15018,-6547},{14998,-6593},{14978,-6639},{14957,-6685},{14937,-6731},{14916,-6777},{14895,-6822},{14874,-6868},{14853,-6914},{14832,-6959},{14810,-7005},{14789,-7050},{14767,-7095},{14745,-7141},{14723,-7186},{14701,-7231},{14679,-7276},{14657,-7321},{14634,-7366},{14611,-7411},{14589,-7456},{14566,-7500},{14543,-7545},{14519,-7590},{14496,-7634},{14473,-7678},{14449,-7723},{14425,-7767},{14401,-7811},{14377,-7856},{14353,-7900},{14329,-7944},{14304,-7988},{14280,-8031},{14255,-8075},{14230,-8119},{14205,-8162},{14180,-8206},{14155,-8249},{14129,-8293},{14104,-8336},{14078,-8379},{14053,-8423},{14027,-8466},{14001,-8509},{13974,-8552},{13948,-8594},{13922,-8637},{13895,-8680},{13868,-8722},{13842,-8765},{13815,-8807},{13788,-8850},{13760,-8892},{13733,-8934},{13705,-8976},{13678,-9018},{13650,-9060},{13622,-9102},{13594,-9144},{13566,-9185},{13538,-9227},{13510,-9268},{13481,-9310},{13452,-9351},{13424,-9392},{13395,-9434},{13366,-9475},{13337,-9516},{13307,-9556},{13278,-9597},{13249,-9638},{13219,-9679},{13189,-9719},{13159,-9759},{13129,-9800},{13099,-9840},{13069,-9880},{13038,-9920},{13008,-9960},{12977,-10000},{12947,-10040},{12916,-10079},{12885,-10119},{12854,-10159},{12822,-10198},{12791,-10237},{12760,-10276},{12728,-10315},{12696,-10354},{12665,-10393},{12633,-10432},{12600,-10471},{12568,-10510},{12536,-10548},{12504,-10586},{12471,-10625},{12438,-10663},{12406,-10701},{12373,-10739},{12340,-10777},{12307,-10815},{12273,-10853},{12240,-10890},{12207,-10928},{12173,-10965},{12139,-11002},{12105,-11040},{12072,-11077},{12037,-11114},{12003,-11150},{11969,-11187},{11935,-11224},{11900,-11260},{11866,-11297},{11831,-11333},{11796,-11370},{11761,-11406},{11726,-11442},{11691,-11478},{11656,-11513},{11620,-11549},{11585,-11585},{11549,-11620},{11513,-11656},{11478,-11691},{11442,-11726},{11406,-11761},{11370,-11796},{11333,-11831},{11297,-11866},{11260,-11900},{11224,-11935},{11187,-11969},{11150,-12003},{11114,-12037},{11077,-12072},{11040,-12105},{11002,-12139},{10965,-12173},{10928,-12207},{10890,-12240},{10853,-12273},{10815,-12307},{10777,-12340},{10739,-12373},{10701,-12406},{10663,-12438},{10625,-12471},{10586,-12504},{10548,-12536},{10510,-12568},{10471,-12600},{10432,-12633},{10393,-12665},{10354,-12696},{10315,-12728},{10276,-12760},{10237,-12791},{10198,-12822},{10159,-12854},{10119,-12885},{10079,-12916},{10040,-12947},{10000,-12977},{9960,-13008},{9920,-13038},{9880,-13069},{9840,-13099},{9800,-13129},{9759,-13159},{9719,-13189},{9679,-13219},{9638,-13249},{9597,-13278},{9556,-13307},{9516,-13337},{9475,-13366},{9434,-13395},{9392,-13424},{9351,-13452},{9310,-13481},{9268,-13510},{9227,-13538},{9185,-13566},{9144,-13594},{9102,-13622},{9060,-13650},{9018,-13678},{8976,-13705},{8934,-13733},{8892,-13760},{8850,-13788},{8807,-13815},{8765,-13842},{8722,-13868},{8680,-13895},{8637,-13922},{8594,-13948},{8552,-13974},{8509,-14001},{8466,-14027},{8423,-14053},{8379,-14078},{8336,-14104},{8293,-14129},{8249,-14155},{8206,-14180},{8162,-14205},{8119,-14230},{8075,-14255},{8031,-14280},{7988,-14304},{7944,-14329},{7900,-14353},{7856,-14377},{7811,-14401},{7767,-14425},{7723,-14449},{7678,-14473},{7634,-14496},{7590,-14519},{7545,-14543},{7500,-14566},{7456,-14589},{7411,-14611},{7366,-14634},{7321,-14657},{7276,-14679},{7231,-14701},{7186,-14723},{7141,-14745},{7095,-14767},{7050,-14789},{7005,-14810},{6959,-14832},{6914,-14853},{6868,-14874},{6822,-14895},{6777,-14916},{6731,-14937},{6685,-14957},{6639,-14978},{6593,-14998},{6547,-15018},{6501,-15038},{6455,-15058},{6408,-15078},{6362,-15098},{6316,-15117},{6269,-15136},{6223,-15156},{6176,-15175},{6130,-15193},{6083,-15212},{6036,-15231},{5990,-15249},{5943,-15267},{5896,-15286},{5849,-15304},{5802,-15322},{5755,-15339},{5708,-15357},{5661,-15374},{5614,-15392},{5566,-15409},{5519,-15426},{5472,-15443},{5424,-15459},{5377,-15476},{5329,-15492},{5282,-15509},{5234,-15525},{5187,-15541},{5139,-15557},{5091,-15572},{5043,-15588},{4995,-15603},{4948,-15618},{4900,-15634},{4852,-15649},{4804,-15663},{4756,-15678},{4707,-15693},{4659,-15707},{4611,-15721},{4563,-15735},{4514,-15749},{4466,-15763},{4418,-15777},{4369,-15790},{4321,-15803},{4272,-15817},{4224,-15830},{4175,-15842},{4127,-15855},{4078,-15868},{4029,-15880},{3980,-15892},{3932,-15905},{3883,-15917},{3834,-15928},{3785,-15940},{3736,-15952},{3687,-15963},{3638,-15974},{3589,-15985},{3540,-15996},{3491,-16007},{3442,-16018},{3393,-16028},{3344,-16039},{3294,-16049},{3245,-16059},{3196,-16069},{3147,-16078},{3097,-16088},{3048,-16097},{2998,-16107},{2949,-16116},{2900,-16125},{2850,-16134},{2801,-16142},{2751,-16151},{2701,-16159},{2652,-16167},{2602,-16175},{2553,-16183},{2503,-16191},{2453,-16199},{2404,-16206},{2354,-16213},{2304,-16221},{2254,-16228},{2204,-16234},{2155,-16241},{2105,-16248},{2055,-16254},{2005,-16260},{1955,-16266},{1905,-16272},{1855,-16278},{1805,-16284},{1755,-16289},{1705,-16294},{1655,-16300},{1605,-16305},{1555,-16309},{1505,-16314},{1455,-16319},{1405,-16323},{1355,-16327},{1305,-16331},{1255,-16335},{1205,-16339},{1155,-16343},{1105,-16346},{1054,-16350},{1004,-16353},{954,-16356},{904,-16359},{854,-16361},{803,-16364},{753,-16366},{703,-16368},{653,-16370},{603,-16372},{552,-16374},{502,-16376},{452,-16377},{402,-16379},{351,-16380},{301,-16381},{251,-16382},{201,-16382},{150,-16383},{100,-16383},{50,-16383},{0,-16384},{-50,-16383},{-100,-16383},{-150,-16383},{-201,-16382},{-251,-16382},{-301,-16381},{-351,-16380},{-402,-16379},{-452,-16377},{-502,-16376},{-552,-16374},{-603,-16372},{-653,-16370},{-703,-16368},{-753,-16366},{-803,-16364},{-854,-16361},{-904,-16359},{-954,-16356},{-1004,-16353},{-1054,-16350},{-1105,-16346},{-1155,-16343},{-1205,-16339},{-1255,-16335},{-1305,-16331},{-1355,-16327},{-1405,-16323},{-1455,-16319},{-1505,-16314},{-1555,-16309},{-1605,-16305},{-1655,-16300},{-1705,-16294},{-1755,-16289},{-1805,-16284},{-1855,-16278},{-1905,-16272},{-1955,-16266},{-2005,-16260},{-2055,-16254},{-2105,-16248},{-2155,-16241},{-2204,-16234},{-2254,-16228},{-2304,-16221},{-2354,-16213},{-2404,-16206},{-2453,-16199},{-2503,-16191},{-2553,-16183},{-2602,-16175},{-2652,-16167},{-2701,-16159},{-2751,-16151},{-2801,-16142},{-2850,-16134},{-2900,-16125},{-2949,-16116},{-2998,-16107},{-3048,-16097},{-3097,-16088},{-3147,-16078},{-3196,-16069},{-3245,-16059},{-3294,-16049},{-3344,-16039},{-3393,-16028},{-3442,-16018},{-3491,-16007},{-3540,-15996},{-3589,-15985},{-3638,-15974},{-3687,-15963},{-3736,-15952},{-3785,-15940},{-3834,-15928},{-3883,-15917},{-3932,-15905},{-3980,-15892},{-4029,-15880},{-4078,-15868},{-4127,-15855},{-4175,-15842},{-4224,-15830},{-4272,-15817},{-4321,-15803},{-4369,-15790},{-4418,-15777},{-4466,-15763},{-4514,-15749},{-4563,-15735},{-4611,-15721},{-4659,-15707},{-4707,-15693},{-4756,-15678},{-4804,-15663},{-4852,-15649},{-4900,-15634},{-4948,-15618},{-4995,-15603},{-5043,-15588},{-5091,-15572},{-5139,-15557},{-5187,-15541},{-5234,-15525},{-5282,-15509},{-5329,-15492},{-5377,-15476},{-5424,-15459},{-5472,-15443},{-5519,-15426},{-5566,-15409},{-5614,-15392},{-5661,-15374},{-5708,-15357},{-5755,-15339},{-5802,-15322},{-5849,-15304},{-5896,-15286},{-5943,-15267},{-5990,-15249},{-6036,-15231},{-6083,-15212},{-6130,-15193},{-6176,-15175},{-6223,-15156},{-6269,-15136},{-6316,-15117},{-6362,-15098},{-6408,-15078},{-6455,-15058},{-6501,-15038},{-6547,-15018},{-6593,-14998},{-6639,-14978},{-6685,-14957},{-6731,-14937},{-6777,-14916},{-6822,-14895},{-6868,-14874},{-6914,-14853},{-6959,-14832},{-7005,-14810},{-7050,-14789},{-7095,-14767},{-7141,-14745},{-7186,-14723},{-7231,-14701},{-7276,-14679},{-7321,-14657},{-7366,-14634},{-7411,-14611},{-7456,-14589},{-7500,-14566},{-7545,-14543},{-7590,-14519},{-7634,-14496},{-7678,-14473},{-7723,-14449},{-7767,-14425},{-7811,-14401},{-7856,-14377},{-7900,-14353},{-7944,-14329},{-7988,-14304},{-8031,-14280},{-8075,-14255},{-8119,-14230},{-8162,-14205},{-8206,-14180},{-8249,-14155},{-8293,-14129},{-8336,-14104},{-8379,-14078},{-8423,-14053},{-8466,-14027},{-8509,-14001},{-8552,-13974},{-8594,-13948},{-8637,-13922},{-8680,-13895},{-8722,-13868},{-8765,-13842},{-8807,-13815},{-8850,-13788},{-8892,-13760},{-8934,-13733},{-8976,-13705},{-9018,-13678},{-9060,-13650},{-9102,-13622},{-9144,-13594},{-9185,-13566},{-9227,-13538},{-9268,-13510},{-9310,-13481},{-9351,-13452},{-9392,-13424},{-9434,-13395},{-9475,-13366},{-9516,-13337},{-9556,-13307},{-9597,-13278},{-9638,-13249},{-9679,-13219},{-9719,-13189},{-9759,-13159},{-9800,-13129},{-9840,-13099},{-9880,-13069},{-9920,-13038},{-9960,-13008},{-10000,-12977},{-10040,-12947},{-10079,-12916},{-10119,-12885},{-10159,-12854},{-10198,-12822},{-10237,-12791},{-10276,-12760},{-10315,-12728},{-10354,-12696},{-10393,-12665},{-10432,-12633},{-10471,-12600},{-10510,-12568},{-10548,-12536},{-10586,-12504},{-10625,-12471},{-10663,-12438},{-10701,-12406},{-10739,-12373},{-10777,-12340},{-10815,-12307},{-10853,-12273},{-10890,-12240},{-10928,-12207},{-10965,-12173},{-11002,-12139},{-11040,-12105},{-11077,-12072},{-11114,-12037},{-11150,-12003},{-11187,-11969},{-11224,-11935},{-11260,-11900},{-11297,-11866},{-11333,-11831},{-11370,-11796},{-11406,-11761},{-11442,-11726},{-11478,-11691},{-11513,-11656},{-11549,-11620},{-11585,-11585},{-11620,-11549},{-11656,-11513},{-11691,-11478},{-11726,-11442},{-11761,-11406},{-11796,-11370},{-11831,-11333},{-11866,-11297},{-11900,-11260},{-11935,-11224},{-11969,-11187},{-12003,-11150},{-12037,-11114},{-12072,-11077},{-12105,-11040},{-12139,-11002},{-12173,-10965},{-12207,-10928},{-12240,-10890},{-12273,-10853},{-12307,-10815},{-12340,-10777},{-12373,-10739},{-12406,-10701},{-12438,-10663},{-12471,-10625},{-12504,-10586},{-12536,-10548},{-12568,-10510},{-12600,-10471},{-12633,-10432},{-12665,-10393},{-12696,-10354},{-12728,-10315},{-12760,-10276},{-12791,-10237},{-12822,-10198},{-12854,-10159},{-12885,-10119},{-12916,-10079},{-12947,-10040},{-12977,-10000},{-13008,-9960},{-13038,-9920},{-13069,-9880},{-13099,-9840},{-13129,-9800},{-13159,-9759},{-13189,-9719},{-13219,-9679},{-13249,-9638},{-13278,-9597},{-13307,-9556},{-13337,-9516},{-13366,-9475},{-13395,-9434},{-13424,-9392},{-13452,-9351},{-13481,-9310},{-13510,-9268},{-13538,-9227},{-13566,-9185},{-13594,-9144},{-13622,-9102},{-13650,-9060},{-13678,-9018},{-13705,-8976},{-13733,-8934},{-13760,-8892},{-13788,-8850},{-13815,-8807},{-13842,-8765},{-13868,-8722},{-13895,-8680},{-13922,-8637},{-13948,-8594},{-13974,-8552},{-14001,-8509},{-14027,-8466},{-14053,-8423},{-14078,-8379},{-14104,-8336},{-14129,-8293},{-14155,-8249},{-14180,-8206},{-14205,-8162},{-14230,-8119},{-14255,-8075},{-14280,-8031},{-14304,-7988},{-14329,-7944},{-14353,-7900},{-14377,-7856},{-14401,-7811},{-14425,-7767},{-14449,-7723},{-14473,-7678},{-14496,-7634},{-14519,-7590},{-14543,-7545},{-14566,-7500},{-14589,-7456},{-14611,-7411},{-14634,-7366},{-14657,-7321},{-14679,-7276},{-14701,-7231},{-14723,-7186},{-14745,-7141},{-14767,-7095},{-14789,-7050},{-14810,-7005},{-14832,-6959},{-14853,-6914},{-14874,-6868},{-14895,-6822},{-14916,-6777},{-14937,-6731},{-14957,-6685},{-14978,-6639},{-14998,-6593},{-15018,-6547},{-15038,-6501},{-15058,-6455},{-15078,-6408},{-15098,-6362},{-15117,-6316},{-15136,-6269},{-15156,-6223},{-15175,-6176},{-15193,-6130},{-15212,-6083},{-15231,-6036},{-15249,-5990},{-15267,-5943},{-15286,-5896},{-15304,-5849},{-15322,-5802},{-15339,-5755},{-15357,-5708},{-15374,-5661},{-15392,-5614},{-15409,-5566},{-15426,-5519},{-15443,-5472},{-15459,-5424},{-15476,-5377},{-15492,-5329},{-15509,-5282},{-15525,-5234},{-15541,-5187},{-15557,-5139},{-15572,-5091},{-15588,-5043},{-15603,-4995},{-15618,-4948},{-15634,-4900},{-15649,-4852},{-15663,-4804},{-15678,-4756},{-15693,-4707},{-15707,-4659},{-15721,-4611},{-15735,-4563},{-15749,-4514},{-15763,-4466},{-15777,-4418},{-15790,-4369},{-15803,-4321},{-15817,-4272},{-15830,-4224},{-15842,-4175},{-15855,-4127},{-15868,-4078},{-15880,-4029},{-15892,-3980},{-15905,-3932},{-15917,-3883},{-15928,-3834},{-15940,-3785},{-15952,-3736},{-15963,-3687},{-15974,-3638},{-15985,-3589},{-15996,-3540},{-16007,-3491},{-16018,-3442},{-16028,-3393},{-16039,-3344},{-16049,-3294},{-16059,-3245},{-16069,-3196},{-16078,-3147},{-16088,-3097},{-16097,-3048},{-16107,-2998},{-16116,-2949},{-16125,-2900},{-16134,-2850},{-16142,-2801},{-16151,-2751},{-16159,-2701},{-16167,-2652},{-16175,-2602},{-16183,-2553},{-16191,-2503},{-16199,-2453},{-16206,-2404},{-16213,-2354},{-16221,-2304},{-16228,-2254},{-16234,-2204},{-16241,-2155},{-16248,-2105},{-16254,-2055},{-16260,-2005},{-16266,-1955},{-16272,-1905},{-16278,-1855},{-16284,-1805},{-16289,-1755},{-16294,-1705},{-16300,-1655},{-16305,-1605},{-16309,-1555},{-16314,-1505},{-16319,-1455},{-16323,-1405},{-16327,-1355},{-16331,-1305},{-16335,-1255},{-16339,-1205},{-16343,-1155},{-16346,-1105},{-16350,-1054},{-16353,-1004},{-16356,-954},{-16359,-904},{-16361,-854},{-16364,-803},{-16366,-753},{-16368,-703},{-16370,-653},{-16372,-603},{-16374,-552},{-16376,-502},{-16377,-452},{-16379,-402},{-16380,-351},{-16381,-301},{-16382,-251},{-16382,-201},{-16383,-150},{-16383,-100},{-16383,-50},};

static cint16 tf3[]={{16384,0},{16383,-75},{16383,-150},{16382,-226},{16381,-301},{16379,-376},{16377,-452},{16375,-527},{16372,-603},{16369,-678},{16366,-753},{16363,-829},{16359,-904},{16354,-979},{16350,-1054},{16344,-1130},{16339,-1205},{16333,-1280},{16327,-1355},{16321,-1430},{16314,-1505},{16307,-1580},{16300,-1655},{16292,-1730},{16284,-1805},{16275,-1880},{16266,-1955},{16257,-2030},{16248,-2105},{16238,-2180},{16228,-2254},{16217,-2329},{16206,-2404},{16195,-2478},{16183,-2553},{16171,-2627},{16159,-2701},{16147,-2776},{16134,-2850},{16120,-2924},{16107,-2998},{16093,-3073},{16078,-3147},{16064,-3221},{16049,-3294},{16033,-3368},{16018,-3442},{16002,-3516},{15985,-3589},{15969,-3663},{15952,-3736},{15934,-3810},{15917,-3883},{15899,-3956},{15880,-4029},{15861,-4102},{15842,-4175},{15823,-4248},{15803,-4321},{15783,-4394},{15763,-4466},{15742,-4539},{15721,-4611},{15700,-4683},{15678,-4756},{15656,-4828},{15634,-4900},{15611,-4972},{15588,-5043},{15564,-5115},{15541,-5187},{15517,-5258},{15492,-5329},{15468,-5401},{15443,-5472},{15417,-5543},{15392,-5614},{15366,-5684},{15339,-5755},{15313,-5826},{15286,-5896},{15258,-5966},{15231,-6036},{15203,-6106},{15175,-6176},{15146,-6246},{15117,-6316},{15088,-6385},{15058,-6455},{15028,-6524},{14998,-6593},{14968,-6662},{14937,-6731},{14906,-6799},{14874,-6868},{14843,-6936},{14810,-7005},{14778,-7073},{14745,-7141},{14712,-7208},{14679,-7276},{14645,-7343},{14611,-7411},{14577,-7478},{14543,-7545},{14508,-7612},{14473,-7678},{14437,-7745},{14401,-7811},{14365,-7878},{14329,-7944},{14292,-8009},{14255,-8075},{14218,-8141},{14180,-8206},{14142,-8271},{14104,-8336},{14065,-8401},{14027,-8466},{13988,-8530},{13948,-8594},{13908,-8658},{13868,-8722},{13828,-8786},{13788,-8850},{13747,-8913},{13705,-8976},{13664,-9039},{13622,-9102},{13580,-9165},{13538,-9227},{13495,-9289},{13452,-9351},{13409,-9413},{13366,-9475},{13322,-9536},{13278,-9597},{13234,-9658},{13189,-9719},{13144,-9780},{13099,-9840},{13054,-9900},{13008,-9960},{12962,-10020},{12916,-10079},{12869,-10139},{12822,-10198},{12775,-10257},{12728,-10315},{12680,-10374},{12633,-10432},{12584,-10490},{12536,-10548},{12487,-10606},{12438,-10663},{12389,-10720},{12340,-10777},{12290,-10834},{12240,-10890},{12190,-10946},{12139,-11002},{12088,-11058},{12037,-11114},{11986,-11169},{11935,-11224},{11883,-11279},{11831,-11333},{11779,-11388},{11726,-11442},{11673,-11496},{11620,-11549},{11567,-11602},{11513,-11656},{11460,-11708},{11406,-11761},{11351,-11813},{11297,-11866},{11242,-11917},{11187,-11969},{11132,-12020},{11077,-12072},{11021,-12122},{10965,-12173},{10909,-12223},{10853,-12273},{10796,-12323},{10739,-12373},{10682,-12422},{10625,-12471},{10567,-12520},{10510,-12568},{10452,-12617},{10393,-12665},{10335,-12712},{10276,-12760},{10218,-12807},{10159,-12854},{10099,-12900},{10040,-12947},{9980,-12993},{9920,-13038},{9860,-13084},{9800,-13129},{9739,-13174},{9679,-13219},{9618,-13263},{9556,-13307},{9495,-13351},{9434,-13395},{9372,-13438},{9310,-13481},{9248,-13524},{9185,-13566},{9123,-13608},{9060,-13650},{8997,-13692},{8934,-13733},{8871,-13774},{8807,-13815},{8744,-13855},{8680,-13895},{8616,-13935},{8552,-13974},{8487,-14014},{8423,-14053},{8358,-14091},{8293,-14129},{8228,-14167},{8162,-14205},{8097,-14243},{8031,-14280},{7966,-14317},{7900,-14353},{7833,-14389},{7767,-14425},{7701,-14461},{7634,-14496},{7567,-14531},{7500,-14566},{7433,-14600},{7366,-14634},{7299,-14668},{7231,-14701},{7163,-14734},{7095,-14767},{7027,-14800},{6959,-14832},{6891,-14864},{6822,-14895},{6754,-14927},{6685,-14957},{6616,-14988},{6547,-15018},{6478,-15048},{6408,-15078},{6339,-15107},{6269,-15136},{6200,-15165},{6130,-15193},{6060,-15221},{5990,-15249},{5919,-15277},{5849,-15304},{5779,-15330},{5708,-15357},{5637,-15383},{5566,-15409},{5495,-15434},{5424,-15459},{5353,-15484},{5282,-15509},{5210,-15533},{5139,-15557},{5067,-15580},{4995,-15603},{4924,-15626},{4852,-15649},{4780,-15671},{4707,-15693},{4635,-15714},{4563,-15735},{4490,-15756},{4418,-15777},{4345,-15797},{4272,-15817},{4200,-15836},{4127,-15855},{4054,-15874},{3980,-15892},{3907,-15911},{3834,-15928},{3761,-15946},{3687,-15963},{3614,-15980},{3540,-15996},{3467,-16012},{3393,-16028},{3319,-16044},{3245,-16059},{3171,-16074},{3097,-16088},{3023,-16102},{2949,-16116},{2875,-16129},{2801,-16142},{2726,-16155},{2652,-16167},{2577,-16179},{2503,-16191},{2428,-16202},{2354,-16213},{2279,-16224},{2204,-16234},{2130,-16244},{2055,-16254},{1980,-16263},{1905,-16272},{1830,-16281},{1755,-16289},{1680,-16297},{1605,-16305},{1530,-16312},{1455,-16319},{1380,-16325},{1305,-16331},{1230,-16337},{1155,-16343},{1079,-16348},{1004,-16353},{929,-16357},{854,-16361},{778,-16365},{703,-16368},{628,-16371},{552,-16374},{477,-16377},{402,-16379},{326,-16380},{251,-16382},{175,-16383},{100,-16383},{25,-16383},{-50,-16383},{-125,-16383},{-201,-16382},{-276,-16381},{-351,-16380},{-427,-16378},{-502,-16376},{-577,-16373},{-653,-16370},{-728,-16367},{-803,-16364},{-879,-16360},{-954,-16356},{-1029,-16351},{-1105,-16346},{-1180,-16341},{-1255,-16335},{-1330,-16329},{-1405,-16323},{-1480,-16316},{-1555,-16309},{-1630,-16302},{-1705,-16294},{-1780,-16286},{-1855,-16278},{-1930,-16269},{-2005,-16260},{-2080,-16251},{-2155,-16241},{-2229,-16231},{-2304,-16221},{-2379,-16210},{-2453,-16199},{-2528,-16187},{-2602,-16175},{-2677,-16163},{-2751,-16151},{-2825,-16138},{-2900,-16125},{-2974,-16111},{-3048,-16097},{-3122,-16083},{-3196,-16069},{-3270,-16054},{-3344,-16039},{-3417,-16023},{-3491,-16007},{-3565,-15991},{-3638,-15974},{-3712,-15957},{-3785,-15940},{-3858,-15923},{-3932,-15905},{-4005,-15886},{-4078,-15868},{-4151,-15849},{-4224,-15830},{-4297,-15810},{-4369,-15790},{-4442,-15770},{-4514,-15749},{-4587,-15728},{-4659,-15707},{-4731,-15685},{-4804,-15663},{-4876,-15641},{-4948,-15618},{-5019,-15596},{-5091,-15572},{-5163,-15549},{-5234,-15525},{-5306,-15500},{-5377,-15476},{-5448,-15451},{-5519,-15426},{-5590,-15400},{-5661,-15374},{-5732,-15348},{-5802,-15322},{-5873,-15295},{-5943,-15267},{-6013,-15240},{-6083,-15212},{-6153,-15184},{-6223,-15156},{-6293,-15127},{-6362,-15098},{-6432,-15068},{-6501,-15038},{-6570,-15008},{-6639,-14978},{-6708,-14947},{-6777,-14916},{-6845,-14885},{-6914,-14853},{-6982,-14821},{-7050,-14789},{-7118,-14756},{-7186,-14723},{-7253,-14690},{-7321,-14657},{-7388,-14623},{-7456,-14589},{-7523,-14554},{-7590,-14519},{-7656,-14484},{-7723,-14449},{-7789,-14413},{-7856,-14377},{-7922,-14341},{-7988,-14304},{-8053,-14267},{-8119,-14230},{-8184,-14193},{-8249,-14155},{-8315,-14117},{-8379,-14078},{-8444,-14040},{-8509,-14001},{-8573,-13961},{-8637,-13922},{-8701,-13882},{-8765,-13842},{-8829,-13801},{-8892,-13760},{-8955,-13719},{-9018,-13678},{-9081,-13636},{-9144,-13594},{-9206,-13552},{-9268,-13510},{-9331,-13467},{-9392,-13424},{-9454,-13380},{-9516,-13337},{-9577,-13293},{-9638,-13249},{-9699,-13204},{-9759,-13159},{-9820,-13114},{-9880,-13069},{-9940,-13023},{-10000,-12977},{-10060,-12931},{-10119,-12885},{-10178,-12838},{-10237,-12791},{-10296,-12744},{-10354,-12696},{-10413,-12649},{-10471,-12600},{-10529,-12552},{-10586,-12504},{-10644,-12455},{-10701,-12406},{-10758,-12356},{-10815,-12307},{-10871,-12257},{-10928,-12207},{-10984,-12156},{-11040,-12105},{-11095,-12054},{-11150,-12003},{-11206,-11952},{-11260,-11900},{-11315,-11848},{-11370,-11796},{-11424,-11744},{-11478,-11691},{-11531,-11638},{-11585,-11585},{-11638,-11531},{-11691,-11478},{-11744,-11424},{-11796,-11370},{-11848,-11315},{-11900,-11260},{-11952,-11206},{-12003,-11150},{-12054,-11095},{-12105,-11040},{-12156,-10984},{-12207,-10928},{-12257,-10871},{-12307,-10815},{-12356,-10758},{-12406,-10701},{-12455,-10644},{-12504,-10586},{-12552,-10529},{-12600,-10471},{-12649,-10413},{-12696,-10354},{-12744,-10296},{-12791,-10237},{-12838,-10178},{-12885,-10119},{-12931,-10060},{-12977,-10000},{-13023,-9940},{-13069,-9880},{-13114,-9820},{-13159,-9759},{-13204,-9699},{-13249,-9638},{-13293,-9577},{-13337,-9516},{-13380,-9454},{-13424,-9392},{-13467,-9331},{-13510,-9268},{-13552,-9206},{-13594,-9144},{-13636,-9081},{-13678,-9018},{-13719,-8955},{-13760,-8892},{-13801,-8829},{-13842,-8765},{-13882,-8701},{-13922,-8637},{-13961,-8573},{-14001,-8509},{-14040,-8444},{-14078,-8379},{-14117,-8315},{-14155,-8249},{-14193,-8184},{-14230,-8119},{-14267,-8053},{-14304,-7988},{-14341,-7922},{-14377,-7856},{-14413,-7789},{-14449,-7723},{-14484,-7656},{-14519,-7590},{-14554,-7523},{-14589,-7456},{-14623,-7388},{-14657,-7321},{-14690,-7253},{-14723,-7186},{-14756,-7118},{-14789,-7050},{-14821,-6982},{-14853,-6914},{-14885,-6845},{-14916,-6777},{-14947,-6708},{-14978,-6639},{-15008,-6570},{-15038,-6501},{-15068,-6432},{-15098,-6362},{-15127,-6293},{-15156,-6223},{-15184,-6153},{-15212,-6083},{-15240,-6013},{-15267,-5943},{-15295,-5873},{-15322,-5802},{-15348,-5732},{-15374,-5661},{-15400,-5590},{-15426,-5519},{-15451,-5448},{-15476,-5377},{-15500,-5306},{-15525,-5234},{-15549,-5163},{-15572,-5091},{-15596,-5019},{-15618,-4948},{-15641,-4876},{-15663,-4804},{-15685,-4731},{-15707,-4659},{-15728,-4587},{-15749,-4514},{-15770,-4442},{-15790,-4369},{-15810,-4297},{-15830,-4224},{-15849,-4151},{-15868,-4078},{-15886,-4005},{-15905,-3932},{-15923,-3858},{-15940,-3785},{-15957,-3712},{-15974,-3638},{-15991,-3565},{-16007,-3491},{-16023,-3417},{-16039,-3344},{-16054,-3270},{-16069,-3196},{-16083,-3122},{-16097,-3048},{-16111,-2974},{-16125,-2900},{-16138,-2825},{-16151,-2751},{-16163,-2677},{-16175,-2602},{-16187,-2528},{-16199,-2453},{-16210,-2379},{-16221,-2304},{-16231,-2229},{-16241,-2155},{-16251,-2080},{-16260,-2005},{-16269,-1930},{-16278,-1855},{-16286,-1780},{-16294,-1705},{-16302,-1630},{-16309,-1555},{-16316,-1480},{-16323,-1405},{-16329,-1330},{-16335,-1255},{-16341,-1180},{-16346,-1105},{-16351,-1029},{-16356,-954},{-16360,-879},{-16364,-803},{-16367,-728},{-16370,-653},{-16373,-577},{-16376,-502},{-16378,-427},{-16380,-351},{-16381,-276},{-16382,-201},{-16383,-125},{-16383,-50},{-16383,25},{-16383,100},{-16383,175},{-16382,251},{-16380,326},{-16379,402},{-16377,477},{-16374,552},{-16371,628},{-16368,703},{-16365,778},{-16361,854},{-16357,929},{-16353,1004},{-16348,1079},{-16343,1155},{-16337,1230},{-16331,1305},{-16325,1380},{-16319,1455},{-16312,1530},{-16305,1605},{-16297,1680},{-16289,1755},{-16281,1830},{-16272,1905},{-16263,1980},{-16254,2055},{-16244,2130},{-16234,2204},{-16224,2279},{-16213,2354},{-16202,2428},{-16191,2503},{-16179,2577},{-16167,2652},{-16155,2726},{-16142,2801},{-16129,2875},{-16116,2949},{-16102,3023},{-16088,3097},{-16074,3171},{-16059,3245},{-16044,3319},{-16028,3393},{-16012,3467},{-15996,3540},{-15980,3614},{-15963,3687},{-15946,3761},{-15928,3834},{-15911,3907},{-15892,3980},{-15874,4054},{-15855,4127},{-15836,4200},{-15817,4272},{-15797,4345},{-15777,4418},{-15756,4490},{-15735,4563},{-15714,4635},{-15693,4707},{-15671,4780},{-15649,4852},{-15626,4924},{-15603,4995},{-15580,5067},{-15557,5139},{-15533,5210},{-15509,5282},{-15484,5353},{-15459,5424},{-15434,5495},{-15409,5566},{-15383,5637},{-15357,5708},{-15330,5779},{-15304,5849},{-15277,5919},{-15249,5990},{-15221,6060},{-15193,6130},{-15165,6200},{-15136,6269},{-15107,6339},{-15078,6408},{-15048,6478},{-15018,6547},{-14988,6616},{-14957,6685},{-14927,6754},{-14895,6822},{-14864,6891},{-14832,6959},{-14800,7027},{-14767,7095},{-14734,7163},{-14701,7231},{-14668,7299},{-14634,7366},{-14600,7433},{-14566,7500},{-14531,7567},{-14496,7634},{-14461,7701},{-14425,7767},{-14389,7833},{-14353,7900},{-14317,7966},{-14280,8031},{-14243,8097},{-14205,8162},{-14167,8228},{-14129,8293},{-14091,8358},{-14053,8423},{-14014,8487},{-13974,8552},{-13935,8616},{-13895,8680},{-13855,8744},{-13815,8807},{-13774,8871},{-13733,8934},{-13692,8997},{-13650,9060},{-13608,9123},{-13566,9185},{-13524,9248},{-13481,9310},{-13438,9372},{-13395,9434},{-13351,9495},{-13307,9556},{-13263,9618},{-13219,9679},{-13174,9739},{-13129,9800},{-13084,9860},{-13038,9920},{-12993,9980},{-12947,10040},{-12900,10099},{-12854,10159},{-12807,10218},{-12760,10276},{-12712,10335},{-12665,10393},{-12617,10452},{-12568,10510},{-12520,10567},{-12471,10625},{-12422,10682},{-12373,10739},{-12323,10796},{-12273,10853},{-12223,10909},{-12173,10965},{-12122,11021},{-12072,11077},{-12020,11132},{-11969,11187},{-11917,11242},{-11866,11297},{-11813,11351},{-11761,11406},{-11708,11460},{-11656,11513},{-11602,11567},{-11549,11620},{-11496,11673},{-11442,11726},{-11388,11779},{-11333,11831},{-11279,11883},{-11224,11935},{-11169,11986},{-11114,12037},{-11058,12088},{-11002,12139},{-10946,12190},{-10890,12240},{-10834,12290},{-10777,12340},{-10720,12389},{-10663,12438},{-10606,12487},{-10548,12536},{-10490,12584},{-10432,12633},{-10374,12680},{-10315,12728},{-10257,12775},{-10198,12822},{-10139,12869},{-10079,12916},{-10020,12962},{-9960,13008},{-9900,13054},{-9840,13099},{-9780,13144},{-9719,13189},{-9658,13234},{-9597,13278},{-9536,13322},{-9475,13366},{-9413,13409},{-9351,13452},{-9289,13495},{-9227,13538},{-9165,13580},{-9102,13622},{-9039,13664},{-8976,13705},{-8913,13747},{-8850,13788},{-8786,13828},{-8722,13868},{-8658,13908},{-8594,13948},{-8530,13988},{-8466,14027},{-8401,14065},{-8336,14104},{-8271,14142},{-8206,14180},{-8141,14218},{-8075,14255},{-8009,14292},{-7944,14329},{-7878,14365},{-7811,14401},{-7745,14437},{-7678,14473},{-7612,14508},{-7545,14543},{-7478,14577},{-7411,14611},{-7343,14645},{-7276,14679},{-7208,14712},{-7141,14745},{-7073,14778},{-7005,14810},{-6936,14843},{-6868,14874},{-6799,14906},{-6731,14937},{-6662,14968},{-6593,14998},{-6524,15028},{-6455,15058},{-6385,15088},{-6316,15117},{-6246,15146},{-6176,15175},{-6106,15203},{-6036,15231},{-5966,15258},{-5896,15286},{-5826,15313},{-5755,15339},{-5684,15366},{-5614,15392},{-5543,15417},{-5472,15443},{-5401,15468},{-5329,15492},{-5258,15517},{-5187,15541},{-5115,15564},{-5043,15588},{-4972,15611},{-4900,15634},{-4828,15656},{-4756,15678},{-4683,15700},{-4611,15721},{-4539,15742},{-4466,15763},{-4394,15783},{-4321,15803},{-4248,15823},{-4175,15842},{-4102,15861},{-4029,15880},{-3956,15899},{-3883,15917},{-3810,15934},{-3736,15952},{-3663,15969},{-3589,15985},{-3516,16002},{-3442,16018},{-3368,16033},{-3294,16049},{-3221,16064},{-3147,16078},{-3073,16093},{-2998,16107},{-2924,16120},{-2850,16134},{-2776,16147},{-2701,16159},{-2627,16171},{-2553,16183},{-2478,16195},{-2404,16206},{-2329,16217},{-2254,16228},{-2180,16238},{-2105,16248},{-2030,16257},{-1955,16266},{-1880,16275},{-1805,16284},{-1730,16292},{-1655,16300},{-1580,16307},{-1505,16314},{-1430,16321},{-1355,16327},{-1280,16333},{-1205,16339},{-1130,16344},{-1054,16350},{-979,16354},{-904,16359},{-829,16363},{-753,16366},{-678,16369},{-603,16372},{-527,16375},{-452,16377},{-376,16379},{-301,16381},{-226,16382},{-150,16383},{-75,16383},};

template<unsigned id>
void radix2_dit(input_window<cint16> * x_in,output_window<cint16> * y_out);
